package cn.com.anypay.manager.lakala.config;

import lombok.Data;
import java.util.HashMap;
import java.util.Map;

/**
 * API端点配置类
 * 用于管理支付平台的各种API端点
 *
 * @author Claude
 * @date 2024-01-15
 */
@Data
public class ApiEndpointConfig {

    /**
     * 测试环境基础URL
     */
    private String testBaseUrl;

    /**
     * 沙箱环境基础URL
     */
    private String sandboxBaseUrl;

    /**
     * 生产环境基础URL
     */
    private String prodBaseUrl;

    /**
     * API端点路径映射
     * key: 端点名称（如：merchantApply, contractQuery等）
     * value: 端点路径
     */
    private Map<String, String> endpoints = new HashMap<>();

    /**
     * 添加端点
     */
    public void addEndpoint(String name, String path) {
        endpoints.put(name, path);
    }

    /**
     * 获取端点路径
     */
    public String getEndpoint(String name) {
        return endpoints.get(name);
    }

    /**
     * 根据环境获取基础URL
     */
    public String getBaseUrl(String environment) {
        if ("prod".equalsIgnoreCase(environment) || "production".equalsIgnoreCase(environment)) {
            return prodBaseUrl;
        } else if ("sandbox".equalsIgnoreCase(environment)) {
            return sandboxBaseUrl;
        } else {
            return testBaseUrl;
        }
    }

    /**
     * 获取完整的API URL
     */
    public String getFullUrl(String environment, String endpointName) {
        String baseUrl = getBaseUrl(environment);
        String endpoint = getEndpoint(endpointName);
        if (baseUrl == null || endpoint == null) {
            return null;
        }
        return baseUrl + endpoint;
    }
}